home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 53696 / 53696.xpi / chrome / content / bin_category.js next >
Text File  |  2009-12-15  |  3KB  |  112 lines

  1. String.prototype.ltrim = function String$ltrim() { var re = /\s*((\S+\s*)*)/; return this.replace(re, "$1"); }
  2. String.prototype.rtrim = function String$rtrim() { var re = /((\s*\S+)*)\s*/; return this.replace(re, "$1"); }
  3. String.prototype.trim = function String$trim() { return this.ltrim(this.rtrim()); }
  4.  
  5. function glideBinCategoryDialog_GetParentWindow() {
  6.     if (window.opener) {
  7.         if (window.opener.opener) {
  8.             return window.opener.opener;
  9.         } else {
  10.             return window.opener;
  11.         }
  12.     }
  13. }
  14.  
  15. var prompt = null;
  16. var glideSession = null;
  17. var invokeService = null;
  18. var ENDPOINT_FS = null;
  19. var categoryId = null;
  20.  
  21. function refreshList() {
  22.     var ml = document.getElementById("glide-bin-categories-list");
  23.     
  24.     ml.removeAllItems();
  25.     
  26.     ml.appendItem("(None)", "NONE");
  27.     ml.appendItem("(New Category...)", "NEW");
  28.  
  29.     invokeService(ENDPOINT_FS, "getbincategories", false,
  30.         { token: glideSession.token },
  31.         function(d) {
  32.             if (!d.success) {
  33.                 alert(d.message);
  34.  
  35.                 return;
  36.             }
  37.  
  38.             var items = d.items;
  39.             var found = false;
  40.  
  41.             for (var i = 0; i < items.length; i++) {
  42.                 ml.appendItem(items[i].name, items[i].categoryId.toLowerCase());
  43.             }
  44.  
  45.             ml.value = categoryId;
  46.  
  47.             if (null == ml.selectedItem) {
  48.                 ml.selectedIndex = 0;
  49.                 categoryId = "NONE";
  50.             }
  51.         });
  52. }
  53.  
  54. function glideBinCategoryDialog_Load() {
  55.     prompt = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
  56.     glideSession = window.arguments[0].inn.glideSession;
  57.     invokeService = window.arguments[0].inn.invokeService;
  58.     ENDPOINT_FS = window.arguments[0].inn.ENDPOINT_FS;
  59.     categoryId = window.arguments[0].inn.categoryId.toLowerCase();
  60.  
  61.     refreshList();
  62. }
  63.  
  64. function glideBinCategoryDialog_Selected(who) {
  65.     if ("NEW" == who.value) {
  66.         while (true) {
  67.             var name = { value: "" };
  68.  
  69.             if (!prompt.prompt(null, "New Bin Category", "Please enter the name of the new category:", name, "", {})) {
  70.                 document.getElementById("glide-bin-categories-list").selectedIndex = 0;
  71.                 categoryId = "NONE";
  72.                 
  73.                 return;
  74.             }
  75.  
  76.             name.value = name.value.trim();
  77.  
  78.             if ("" == name.value) {
  79.                 alert("Please enter the category name");
  80.  
  81.                 continue;
  82.             }
  83.  
  84.             break;
  85.         }
  86.  
  87.         invokeService(ENDPOINT_FS, "addbincategory", false,
  88.             { token: glideSession.token, name: name.value },
  89.             function(d) {
  90.                 if (!d.success) {
  91.                     alert(d.message);
  92.  
  93.                     return;
  94.                 }
  95.  
  96.                 categoryId = d.value;
  97.  
  98.                 document.getElementById("glide-bin-category-dialog").acceptDialog();
  99.             });
  100.  
  101.         return;
  102.     }
  103.     
  104.     categoryId = who.value;
  105. }
  106.  
  107. function glideBinCategoryDialog_Accept() {
  108.     window.arguments[0].out = categoryId;
  109.     
  110.     return true;
  111. }
  112.